package uast.bpdex;

import uast.bpdex.BaseDatos.*;

/*
 * Clase hecha para representar a los profesores en el sistema
 */
public class Profesor {
    
  //Atributos de la clase
  private String usr;
  private String pssw;
  private String nombre;
  private String apellido;
  private String ci;
  private String sexo;
  private String email;
  private String tlf;
  private String dpto;
  private String cord;
  private String pregunta;
  private String respuesta;
  private String esEval;
  private static String[] arr = {"usr", "nombre", "apellido", "ci", "email", "tlf", "dpto", "cord", "tipo"};

  //Constructor vacío de la clase
  public Profesor(){
    this.usr = "";
    this.pssw = "";
    this.nombre = "";
    this.apellido = "";
    this.ci = "";
    this.sexo = "";
    this.email = "";
    this.tlf = "";
    this.dpto = "";
    this.cord = "";    
    this.pregunta = "";
    this.respuesta = "";
    this.esEval = "0";
  }
  //Constructor de la clase que recibe todos los parámetros bajo los que debe ser creado un profesor
  public Profesor(String usr, String pssw, String nombre, String apellido, String ci, String sexo, String email, String tlf, String dpto, String cord, String pregunta, String respuesta){
    this.usr = usr;
    this.pssw = pssw;
    this.nombre = nombre;
    this.apellido = apellido;
    this.ci = ci;
    this.sexo = sexo;
    this.email = email;
    this.tlf = tlf;
    this.dpto = dpto;
    this.cord = cord;
    this.pregunta = pregunta;
    this.respuesta = respuesta;
    this.esEval = "0";
  }
  
  /*
   * Metodo para ubicar a evaluadores utilizando una serie de patrones de busqueda.
   * Entrada: String[] id -> Valores de los campos por los que se desea realizar la busqueda.
   *                         Deben estar en el mismo orden en que aparecen en la variable 'arr'.
   *                         Su un campo se deja vacio, se considera que su valor carece de importancia
   *                         para la busqueda
   * Salida: Arreglo de profesores deseado
   */
  public static Profesor[] buscar(String[] id) throws Exception{
      DataBase db = new DataBase();
      Profesor[] ret = db.buscarProfesor(id);
      return ret;     
  }
    
  /*
   * Metodo para ubicar a evaluadores utilizando una serie de patrones de busqueda.
   * Entrada: String[] id -> Valores de los campos por los que se desea realizar la busqueda.
   *                         Deben estar en el mismo orden en que aparecen en la variable 'arr'.
   *                         Su un campo se deja vacio, se considera que su valor carece de importancia
   *                         para la busqueda
   * Salida: Arreglo de profesores deseado
   */
  public static Profesor[] buscarEvaluador(String[] id) throws Exception{
      DataBase db = new DataBase();
      Profesor[] ret = db.buscarEvaluador(id);
      return ret;
  }
  /*
   * Metodo para ascender a un profesor a la categoria de evaluador 
   */
  public void aEvaluador() throws Exception{
      DataBase db = new DataBase();
      db.ascenderProfesor(this);
      this.esEval = "1";
      return;
  }

  /*
   * Metodo para descender a un profesor a la categoria de evaluador 
   */
  public void dEvaluador() throws Exception{
      DataBase db = new DataBase();
      db.descenderProfesor(this);
      this.esEval = "1";
      return;
  }
  
  //Lista de getters de la clase
  public String getUsr(){return this.usr;}
  public String getPssw(){return this.pssw;}
  public String getNombre(){return this.nombre;}
  public String getApellido(){return this.apellido;}
  public String getCi(){return this.ci;}
  public String getSexo(){return this.sexo;}
  public String getEmail(){return this.email;}
  public String getTlf(){return this.tlf;}
  public String getDpto(){return this.dpto;}
  public String getCord(){return this.cord;}
  public static String[] getArr(){return Profesor.arr;}    
  public String getPregunta(){return this.pregunta;}
  public String getRespuesta(){return this.respuesta;}
  public String getEsEval(){return this.esEval;}

//Setters de la clase
  public void setPssw(String pssw){this.pssw = pssw;}
  public void setUsr(String usr){this.usr = usr;}
  public void setNombre(String nombre){this.nombre = nombre;}
  public void setApellido(String apellido){this.apellido = apellido;}
  public void setCi(String ci){this.ci = ci;}
  public void setSexo(String sexo){this.sexo = sexo;}
  public void setEmail(String email){this.email = email;}
  public void setTlf(String tlf){this.tlf = tlf;}
  public void setDpto(String dpto){this.dpto = dpto;}
  public void setCord(String cord){this.cord = cord;}
  public void setPregunta(String pregunta){this.pregunta = pregunta;}    
  public void setRespuesta(String respuesta){this.respuesta = respuesta;}    
  public void setEsEval(String esEval){this.esEval = esEval;}
}
